<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>4</title>
</head>
<body>
    <script>
        function Cat(name, color) {
            this.name = name;
            this.color = color;
        };
        // cosntructor 在共享属性或方法面前有点孤木难枝
        // prototype 解决浪费， 
        Cat.prototype.type = '猫科动物';
        Cat.prototype.eat = function(){
            console.log('吃 jerry');
        };
        var cat1 = new Cat('tom','灰色');
        console.log(Cat.prototype.isPrototypeOf(cat1)); // 判断：Cat.prototype 是否在 cat1 的原型链中
        // 实例上的属性？ prototype上的属性？
        console.log(cat1.hasOwnProperty('type'));
        console.log(cat1.hasOwnProperty('name'));
        console.log("name" in cat1); // 属性名是否存在于目标对象本身，或其原型链上的任意位置
        console.log("type" in cat1);
        for (var prop in cat1) {
            console.log(prop, cat1[prop]);
        }
    </script>
</body>
</html>